From 0dc1cf094a111941de4299ab8e5bd93f50a6a800 Mon Sep 17 00:00:00 2001 From: "dan@guaranine.beaverton.ibm.com" Date: Thu, 17 Nov 2005 11:56:13 +0100 Subject: [PATCH] Make test 04_memset detect bug #380 and restart the console daemon. This should allow the rest of the tests to run without reporting failure because this test killed the console system. --- tools/xm-test/lib/XmTestLib/Console.py | 10 +++++++--- .../xm-test/tests/memset/04_memset_smallmem_pos.py | 13 ++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/tools/xm-test/lib/XmTestLib/Console.py b/tools/xm-test/lib/XmTestLib/Console.py index 3c5691dc96..f502adc859 100755 --- a/tools/xm-test/lib/XmTestLib/Console.py +++ b/tools/xm-test/lib/XmTestLib/Console.py @@ -33,9 +33,13 @@ import select from Test import * +TIMEDOUT = 1 +RUNAWAY = 2 + class ConsoleError(Exception): - def __init__(self, msg): + def __init__(self, msg, reason=TIMEDOUT): self.errMsg = msg + self.reason = reason def __str__(self): return str(self.errMsg) @@ -149,7 +153,7 @@ class XmConsole: if self.limit and bytes >= self.limit: raise ConsoleError("Console run-away (exceeded %i bytes)" - % self.limit) + % self.limit, RUNAWAY) if self.debugMe: print "Ignored %i bytes of miscellaneous console output" % bytes @@ -187,7 +191,7 @@ class XmConsole: if self.limit and bytes >= self.limit: raise ConsoleError("Console run-away (exceeded %i bytes)" - % self.limit) + % self.limit, RUNAWAY) if str == "\n": if lines > 0: diff --git a/tools/xm-test/tests/memset/04_memset_smallmem_pos.py b/tools/xm-test/tests/memset/04_memset_smallmem_pos.py index 954707afcc..ebe5c5ba66 100644 --- a/tools/xm-test/tests/memset/04_memset_smallmem_pos.py +++ b/tools/xm-test/tests/memset/04_memset_smallmem_pos.py @@ -36,6 +36,17 @@ try: # See if this hits the byte limit console.runCmd("ls") except ConsoleError, e: - FAIL(str(e)) + if e.reason == RUNAWAY: + # Need to stop the domain before we restart the console daemon + domain.destroy() + if verbose: + print "*** Attempting restart of xenconsoled" + s, o = traceCommand("killall xenconsoled") + s, o = traceCommand("xenconsoled") + if s != 0: + print "*** Starting xenconsoled failed: %i" % s + FAIL("Bug #380: I crashed the console system") + else: + FAIL(str(e)) domain.destroy() -- 2.30.2